package cn.tedu.innerclass;
/**本类用于测试匿名内部类
 * 匿名内部类没有名字，通常与匿名对象结合在一起使用*/
public class TestInner5 {
    public static void main(String[] args) {
        new Inter3().study();
        new Inter3().powerUp();
        new Inter2() {
            @Override
            public void eat() {
                System.out.println("正在干饭~");
            }
        }.eat();
        /*如果想要多次使用实现后的功能,还是要创建之前的普通对象
         * 匿名对象只能使用一次,一次只能调用一个功能
         * 匿名内部类其实就是充当了实现类的功能,去实现未实现的方法,只是没有名字而已*/
        new Inter1() {
            @Override
            public void add() {
                System.out.println("增加");
            }
            @Override
            public void delete() {

            }
        }.add();
    }
}
interface Inter1{
    void add();//创建接口中的抽象方法1
    void delete();//创建接口中的抽象方法2
}
abstract class Inter2{
    public abstract void eat();
    public void play(){
        System.out.println("玩代码");
    }
}
class Inter3{
    public void study(){
        System.out.println("");
    }
    public void powerUp(){
        System.out.println("加油！我们会越来越强的");
    }
}
